The present invention is related to an algorithm and architecture for degrouping a codeword in MPEG-II audio decoding, and in particular to an algorithm and architecture for degrouping a codeword in MPEG-II audio decoding which rely on just only using the addition and subtraction instead of the traditional division and modulo arithmetic operations without loss of accuracy.
The MPEG audio coding standard is the international standard for the compression of digital audio signals. It can be applied both for audiovisual and audio-only applications to significantly reduce the requirements of transmission bandwidth and data storage with low distortion. The second phase of MPEG, labeled as MPEG-II, aims to support all the normative feature listed in MPEG-I audio and provide extension capabilities of multi-channel and multilingual audio and on an extension of standard to lower sampling frequencies and lower bit rates. No matter what is MPEG-I or MPEG-II standard, the MPEG audio compression standard defines threes layers of compression, named as Layer I, II, and III. Each successive layer offers better compression performance, but at a higher complexity and computation cost. Layer I and II are basically similar and based on subband coding. The difference between them mainly lies in formatting side information and a finer quantization is provided in Layer II. Layer III adopts more complex schemes such as hybrid filterbank, Huffman coding and non-linear quantization. From the viewpoint of hardware complexity and achieved quality, Layer II might be a reasonable compromise for general usage. In the official ISO/MPEG subject tests, Layer II coding shows an excellent performance of CD quality at a 128 Kbps per monophonic channel.
Within the Layer II decoding, degrouping is the key component which can recover the samples from a more compressed codeword. As will be described in more detail below, the arithmetic operations for degrouping mainly contain division and modulo. As the conventional methods, there have been executed the arithmetic operations by a general purpose DSP or ASP (audio signal processor) which have some division or modulo instructions. These designs basically implied either a divider directly, or a multiplier by finding the inverse of the divisor and multiplying the inverse by the dividend. These approaches increased the hardware complexity of the processor and the chip area. Several techniques used a ROM-based table lookup to replace the multiplier. Nevertheless, ROM circuit grows exponentially with the dimension of the finite field. Although many fast algorithms for computing the division and modulo arithmetic operations have been presented throughout the years, these techniques cannot be fully adopted in the MPEG degrouping algorithm. So far no dedicated degrouping algorithm and architecture is known.
The overall MPEG decoding flow chart is described in FIG. 1. FIG. 2 shows a further decomposition of inverse quantization of samples in Layer II application. In MPEG audio encoder, given the number of steps from bit allocation, the samples will be quantized. If grouping is required, three consecutive samples are coded as one codeword. For 3-, 5-, and 9-level quantization, a triplet is coded using a 5-, 7-, or 10-bit codeword, respectively. Only one value Vj is transmitted for this triplet. The relations between the coded value Vj and the three consecutive subband samples x, y, z are listed in Table 1.
If the grouping is used in encoder, it is necessary to separate the combined sample codeword to the individual samples by degrouping in decoder. According to the grouping equations in Table 1, the degrouping have to perform the division and modulo operations to separate the three individual samples. This process is supplied by MPEG standard algorithm and depicted as follows:
wherein s[i] the reconstructed sample
Within the degrouping algorithm, the nlevels can be 3, 5, and 9 as shown in Table 1.
Table 2 summarizes the total arithmetic operations in MPEG Layer II audio decoding. A similar analysis of the arithmetic operations in decoding algorithm shows that multiplication and addition are the most common operations which mainly focus on synthesis subband filter. Especially in MPEG-II decoding, degrouping only occupies about 1% computation power of the whole decoding process. More specifically, these arithmetic operations are fully different and generally can""t be shared with other resource of decoding functions. Thus, a low cost and high performance degrouping algorithm and architecture are necessary to reduce the circuit overhead and complexity.
A primary objective of the present invention is to provide an efficient algorithm for degrouping a codeword in MPEG-II audio decoding, in which the arithmetic operations involved are only addition and subtraction instead of the division and modulo used in the conventional algorithm. Another objective of the present invention is to provide an architecture for degrouping a codeword in MPEG-II audio decoding, which not only have a simple and low cost design, but can generate a fixed throughput, i.e. one sample is decoded per clock number independent from the value of the input codeword.